@echo off
chcp 65001 >nul
echo ========================================
echo 鸿蒙项目自动清理脚本 v1.0
echo ========================================
echo.

REM 检查是否在项目根目录
if not exist "entry\src\main\ets\pages\Index.ets" (
    echo 错误：请在项目根目录下运行此脚本！
    echo 当前目录：%CD%
    pause
    exit /b 1
)

echo [1/6] 正在清理项目缓存与构建目录...
if exist "out" (
    echo   删除 out 目录...
    rd /s /q out
)
if exist "build" (
    echo   删除 build 目录...
    rd /s /q build
)
if exist ".cache" (
    echo   删除 .cache 目录...
    rd /s /q .cache
)
if exist "node_modules" (
    echo   删除 node_modules 目录...
    rd /s /q node_modules
)
if exist "entry\build" (
    echo   删除 entry\build 目录...
    rd /s /q entry\build
)
if exist "entry\.cache" (
    echo   删除 entry\.cache 目录...
    rd /s /q entry\.cache
)
if exist ".idea" (
    echo   删除 .idea 目录...
    rd /s /q .idea
)
if exist ".vscode" (
    echo   删除 .vscode 目录...
    rd /s /q .vscode
)

echo [2/6] 清理临时文件...
for /r . %%f in (*.iml) do (
    echo   删除 %%f
    del "%%f" 2>nul
)
for /r . %%f in (hs_err_pid*.log) do (
    echo   删除 %%f
    del "%%f" 2>nul
)

echo [3/6] 检查并安装依赖...
if exist "package.json" (
    echo   安装 npm 依赖...
    call npm install
    if errorlevel 1 (
        echo   警告：npm install 失败，请检查网络连接
    )
)
if exist "entry\oh-package.json5" (
    echo   安装 ohpm 依赖...
    call ohpm install
    if errorlevel 1 (
        echo   警告：ohpm install 失败，请检查网络连接
    )
)

echo [4/6] 检查环境变量...
echo   JAVA_HOME: %JAVA_HOME%
if "%JAVA_HOME%"=="" (
    echo   警告：JAVA_HOME 未设置
) else (
    echo   Java版本:
    "%JAVA_HOME%\bin\java" -version 2>&1 | findstr "version"
)

echo   NODE_HOME: %NODE_HOME%
if "%NODE_HOME%"=="" (
    echo   警告：NODE_HOME 未设置
) else (
    echo   Node版本:
    "%NODE_HOME%\node.exe" --version 2>nul
)

echo [5/6] 检查端口占用...
echo   检查端口 5000 (模拟器):
netstat -ano | findstr ":5000" 2>nul
if errorlevel 1 (
    echo   端口 5000 未被占用
) else (
    echo   警告：端口 5000 被占用，可能需要重启模拟器
)

echo   检查端口 8080 (开发服务器):
netstat -ano | findstr ":8080" 2>nul
if errorlevel 1 (
    echo   端口 8080 未被占用
) else (
    echo   警告：端口 8080 被占用，可能需要重启开发服务器
)

echo [6/6] 检查项目文件完整性...
if exist "entry\src\main\ets\pages\Index.ets" (
    echo   ✓ Index.ets 存在
) else (
    echo   ✗ Index.ets 缺失
)
if exist "entry\src\main\ets\pages\AtomicCube.ets" (
    echo   ✓ AtomicCube.ets 存在
) else (
    echo   ✗ AtomicCube.ets 缺失
)
if exist "entry\src\main\ets\pages\FurnaceLab.ets" (
    echo   ✓ FurnaceLab.ets 存在
) else (
    echo   ✗ FurnaceLab.ets 缺失
)
if exist "entry\src\main\ets\pages\MysticMaze.ets" (
    echo   ✓ MysticMaze.ets 存在
) else (
    echo   ✗ MysticMaze.ets 缺失
)
if exist "entry\src\main\module.json5" (
    echo   ✓ module.json5 存在
) else (
    echo   ✗ module.json5 缺失
)
if exist "entry\src\main\resources\base\profile\main_pages.json" (
    echo   ✓ main_pages.json 存在
) else (
    echo   ✗ main_pages.json 缺失
)

echo.
echo ========================================
echo 清理完成！
echo ========================================
echo.
echo 建议执行以下操作：
echo 1. 重启 DevEco Studio
echo 2. 重启模拟器或重新连接真机
echo 3. 清理模拟器缓存（设置 -> 应用管理 -> 清除数据）
echo 4. 如果问题依旧，尝试重启电脑
echo 5. 检查 DevEco Studio 和模拟器是否为最新版本
echo.
echo 如果 MysticMaze 页面仍无法跳转，可能是：
echo - 模拟器/设备环境异常
echo - DevEco Studio 或 ArkTS 环境损坏
echo - 系统权限或兼容性问题
echo - 建议在另一台电脑或全新环境下测试
echo.
pause 